<?php 

	include("config.php");
    include(INCLUDEDIR."core.php");
	include("acceso.php");
	
	$tpl = new Plantilla();
	$tpl->setPlantilla("tpl.balance.html");
	$tpl->prepare();

	$texto = isset($_GET['texto'])?sanitizar($_GET['texto']):"";
	
	/*if($_GET['ida'] && $_GET['accion']=="eliminar_alumno") {
		$id_alumno = intval($_GET['ida']); 
		$alumno = db::getRow("SELECT * FROM alumnos WHERE id_alumno = '$id_alumno'");
		mysql_query("DELETE FROM pagos WHERE id_alumno = '$id_alumno'");
		mysql_query("DELETE FROM clases_detalle WHERE id_alumno = '$id_alumno'");
		mysql_query("DELETE FROM alumnos WHERE id_alumno = '$id_alumno'");
		registrar_log("Ha eliminado ".$alumno['nombre_alumno']." ci: ".$alumno['ci']." email: ".$alumno['email']);
		redir($_SERVER['PHP_SELF'],"El alumno ha sido eliminado.");
	}*/
	
	
	if($_POST) {
		$arr = array();
		foreach($_POST as $k => $v) {
			if(!empty($v)) $arr[] = $k."=".urlencode($v);
		}
		header("location: ".$_SERVER['PHP_SELF']."?".implode($arr,"&"));
		exit();
	}
	
	$fecha_desde = isset($_GET['fecha_desde'])?$_GET['fecha_desde']:date("d-m-Y");
	$fecha_hasta = isset($_GET['fecha_hasta'])?$_GET['fecha_hasta']:date("d-m-Y");
	
	$tpl->newBlock("BALANCE");
	$tpl->assign("fecha_desde",$fecha_desde);
	$tpl->assign("fecha_hasta",$fecha_hasta);
	$tpl->assign("balance",tomoney(getBalance()));
	
	$query = "SELECT __CAMPOS__ FROM transacciones LEFT JOIN personas ON transacciones.id_persona = personas.id_persona __WHERE__ ";		
			
	$orden = "ORDER BY transacciones.fecha_transaccion ASC, transacciones.stamp ASC ";
			
		
	$filtros = array();
	if($fecha_desde!="") {
		$filtros[] = "transacciones.fecha_transaccion >= '".fecha_a_db($fecha_desde)."'";	
	}
	
	if($fecha_hasta!="") {
		$filtros[] = "transacciones.fecha_transaccion <= '".fecha_a_db($fecha_hasta)."'";	
	}
	
	if(count($filtros)>0) {
		$query = str_replace("__WHERE__","WHERE (".implode(" AND ",$filtros).")",$query);	
	} else {
		$query = str_replace("__WHERE__","",$query);	
	}
	
	
	
	// PAGINACION 
	$maxitems = 1000;	
	$totalitems =intval(db::ExecuteScalar(str_replace("__CAMPOS__","count(*)",$query)));
	$totalpaginas = ceil($totalitems/$maxitems);
	$pagina_actual = intval($_GET['pa']);
	$offset = $pagina_actual*$maxitems;
	$tpl->assign("paginacion",paginacion($totalpaginas,$pagina_actual,$totalitems));
	// PAGINACION
	
	$saldo = 0;
	if($fecha_desde!="") $saldo = getSaldoAnterior(fecha_a_db($fecha_desde));
	$saldoanterior = $saldo;
	
	if($saldo>0) {
		$tpl->newBlock("BALANCEITEM");
		$tpl->assign("fecha_transaccion",$fecha_desde);
		$tpl->assign("descripcion","Saldo anterior");
		$tpl->assign("saldo",tomoney($saldo));
		
	}
	
	$consulta = str_replace("__CAMPOS__","*",$query).$orden." LIMIT $maxitems OFFSET $offset";
	$result = mysql_query($consulta);
	if($result && mysql_num_rows($result)>0) {
		$tpl->assign("saldo",tomoney($saldo));
		if($_GET['fecha_desde']) $tpl->assign("desde","Desde el ".$_GET['fecha_desde']);
		else {
			$desde = db_a_fecha(db::ExecuteScalar("SELECT min(fecha_transaccion) FROM transacciones"));
			$tpl->assign("desde","Desde el dia ".$desde);
		}
		$tpl->assign("hasta",$_GET['fecha_hasta']?"hasta el ".$_GET['fecha_hasta']:" hasta el ".date("d-m-Y"));
		$total_ingreso = 0;
		$total_egreso = 0;
		while($fila = mysql_fetch_assoc($result)) {
			$tpl->newBlock("BALANCEITEM");
			$monto = floatval($fila['monto']);
			$saldo+=floatval($monto);
			$nombre = $fila['nombre_persona'];
			$tpl->assign("descripcion",$fila['descripcion']);
			$tpl->assign("nombre_persona",empty($nombre)?"":enlace("ver_perfil.php?ida=".$fila['id_persona'],$nombre));
			$tpl->assign("fecha_transaccion",db_a_fecha($fila['fecha_transaccion']));			
			$color = $monto>0?"green":"red";
			if($monto<0) $campo = "egreso"; else $campo = "ingreso";
			if($campo=="ingreso") $total_ingreso+=$monto;
			if($campo=="egreso") $total_egreso+=$monto;
			$tpl->assign($campo,color(tomoney($monto),$color));			
			$tpl->assign("saldo",tomoney($saldo));
		}		
		$tpl->newBlock("BALANCETOTAL");
		$tpl->assign("totalingreso",tomoney($total_ingreso));
		$tpl->assign("totalegreso",tomoney($total_egreso));
		$tpl->assign("total",tomoney($total_ingreso+$total_egreso));
	} else {
		$tpl->newBlock("SINRESULTADOS");	
	}
	
	$fechamin = db::ExecuteScalar("SELECT COALESCE(MIN(fecha_transaccion),DATE('2010-01-01')) AS fecha FROM transacciones");
	$fechamax = db::ExecuteScalar("SELECT COALESCE(MAX(fecha_transaccion),DATE('2100-01-01')) AS fecha FROM transacciones");
	$date1 = isset($_GET['fecha_desde'])?fecha_a_db($_GET['fecha_desde']):$fechamin;
	$date2 = isset($_GET['fecha_hasta'])?fecha_a_db($_GET['fecha_hasta']):$fechamax;
	
	$tpl->newBlock("RESUMEN");
	$ingresos = getIngresos($date1,$date2)-$saldoanterior;
	$egresos = getEgresos($date1,$date2);
	$utilidades = $ingresos+$egresos;
	$tpl->assign("ingresos",color(tomoney($ingresos),"green"));
	$tpl->assign("egresos",color(tomoney($egresos),"red"));
	$tpl->assign("utilidades",color(tomoney($utilidades),"green"));
	$tpl->assign("utilidadesperiodo",color(tomoney($utilidadesperiodo),"blue"));
	// resumen de profesores
	
	$fechamin = '2010-01-01';
	$fechamax = '2300-01-01';
	$date1 = isset($_GET['fecha_desde'])?fecha_a_db($_GET['fecha_desde']):$fechamin;
	$date2 = isset($_GET['fecha_hasta'])?fecha_a_db($_GET['fecha_hasta']):$fechamax;
	
	$query = "	SELECT personas.*, proftotal.total FROM personas 
				LEFT JOIN (
					SELECT clases.id_profesor,SUM(det.total) AS total FROM clases 
					INNER JOIN (SELECT id_clase, SUM(monto*horas) AS total FROM clases_detalle GROUP BY id_clase) AS det
					ON clases.id_clase = det.id_clase
					WHERE (clases.fecha_clase BETWEEN '$date1' AND '$date2')
					GROUP BY clases.id_profesor 
				) AS proftotal
				ON personas.id_persona = proftotal.id_profesor 
				WHERE personas.es_profesor = '1'
				ORDER BY personas.nombre_persona ASC
				";
	$result = mysql_query($query); 
	if($result && mysql_num_rows($result)>0) {
		$tpl->newBlock("RESUMENPROFESORES");
		while($fila = mysql_fetch_assoc($result)) {
			$tpl->newBlock("RPITEM");
			$id_profesor = $fila['id_persona'];
			$total = $fila['total'];
			foreach($fila as $k => $v) $tpl->assign($k,$v);
			$tpl->assign("totalfacturado",tomoney($total));
			$totalcobrado = getEgresos($date1,$date2,$id_profesor);
			$tpl->assign("totalcobrado",tomoney($totalcobrado));
		}		
	}
	
	
	$tpl->Mostrar();
?>